# \d 匹配任何十进制数；它相当于类 [0-9]。
# str_data = 'abc121abc  abc1211abc abc1abc'  # () 提取表达式内容
# data = re.findall('abc(\d{1,3})abc', str_data)
# print(data)

# \D 匹配任何非数字字符；它相当于类 [^0-9]。
# str_data = 'abc@@@abc  abccccabc abc123abc'  # () 提取表达式内容
# data = re.findall('abc(\D{1,3})abc', str_data)
# print(data)


# \s 匹配任何空白字符；它相当于类 [ \t\n\r\f\v]。
# str_data = 'abc\t\t\tabc  abc\n\n\nabc abc123abc'  # () 提取表达式内容
# data = re.findall('abc(\s{1,3})abc', str_data)
# print(data)

# \S 匹配任何非空白字符；它相当于类 [^ \t\n\r\f\v]。
# str_data = 'abc\t\t\tabc  abc\n\n\nabc abc123abc'  # () 提取表达式内容
# data = re.findall('abc(\S{1,3})abc', str_data)
# print(data)

# \w 匹配任何字母数字字符；它相当于类 [a-zA-Z0-9_]。下划线也可以匹配到
# str_data = 'abc###abc  abc\n\n\nabc abc12babc'  # () 提取表达式内容
# data = re.findall('abc(\w{1,3})abc', str_data)
# print(data)

# \W 匹配任何非字母数字字符；它相当于类 [^a-zA-Z0-9_]
# str_data = 'abc###abc  abc\n\n\nabc abc12babc'  # () 提取表达式内容
# data = re.findall('abc(\W{1,3})abc', str_data)
# print(data)

#  [] 代表字符集，或的作用
# import re
# str_data = 'abc12Xabc  abc123abc abc129abc'  # () 提取表达式内容
# data = re.findall('abc(\d{3})abc', str_data)
# print(data)


# abc 代表数据位置  ()代表要取的数据 [0-5X] 获取的物体 {1}*+？获取的数量
# abc abc 0-5还有X


# 用正则表达式匹配一个身份证号
# 要求判断 :长度是18  前17位是数字  第18位是数字或者X

# mysql mongdb

import re

data = '1234567887654321`1456'

if re.match('', data):
    print('是一个身份证')
else:
    print('不是身份证')
